package com.lakeworks.mapper;

import com.lakeworks.domain.SysChannel;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 三方渠道信息Mapper接口
 *
 * @author lake
 * @date 2023-02-08
 */
public interface SysChannelMapper {
    /**
     * 查询三方渠道信息
     *
     * @param id 三方渠道信息主键
     * @return 三方渠道信息
     */
    SysChannel selectSysChannelById(Long id);

    /**
     * 查询三方渠道信息列表
     *
     * @param sysChannel 三方渠道信息
     * @return 三方渠道信息集合
     */
    List<SysChannel> selectSysChannelList(SysChannel sysChannel);

    /**
     * 新增三方渠道信息
     *
     * @param sysChannel 三方渠道信息
     * @return 结果
     */
    int insertSysChannel(SysChannel sysChannel);

    /**
     * 修改三方渠道信息
     *
     * @param sysChannel 三方渠道信息
     * @return 结果
     */
    int updateSysChannel(SysChannel sysChannel);

    /**
     * 删除三方渠道信息
     *
     * @param id 三方渠道信息主键
     * @return 结果
     */
    int deleteSysChannelById(Long id);

    /**
     * 批量删除三方渠道信息
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteSysChannelByIds(Long[] ids);

    @Select("SELECT sm.id,sm.code,sm.name,sm.config,\n" +
            "sm.create_at createAt,sm.create_by createBy,\n" +
            "sm.modify_at modifyAt,sm.modify_by modifyBy,sm.flag\n" +
            "FROM sys_channel_auth sca\n" +
            "LEFT JOIN sys_channel sm\n" +
            "ON sca.channel = sm.code\n" +
            "WHERE sca.ak = #{ak}")
    SysChannel queryByAk(@Param("ak") String ak);

    String selectConfigById(Long channelId);


    SysChannel selectSysChannelByCode(String code);
}
